#ifndef LEAMMESSAGESHH
#define LEAMMESSAGESHH
#include "leam-typedefs.hh"
#include "leam-enums.hh"

namespace leam
{
    struct LeamDataHeader
    {
	TLength length;
	LeamDataHeader( TLength _l = 0 )
	    : length( _l ) {}
    };

    struct LeamHeader
    {
	TType type; //ELeamType
	LeamHeader( TType t = ELeamTypeNone ) : type( t ){}
    };

    struct LeamMessageResponseHeader : public LeamHeader
    {
	TMessageId msgId;
	LeamMessageResponseHeader( TMessageId id = 0 ) : msgId( id ){}
    };
    
    struct LeamMessageHeader : public LeamMessageResponseHeader, public LeamDataHeader
    {
    };
    
    struct LeamErrorHeader : public LeamMessageHeader
    {
    };
}
#endif
